草庐IT

Java String、StringBuffer 和 StringBuilder 的区别

全部标签

c# - 字符串连接是否在内部使用 StringBuilder?

我的三个同事刚刚告诉我,没有理由使用StringBuilder来代替使用+运算符的连接。换句话说,这可以处理一堆字符串:myString1+myString2+myString3+myString4+mySt...他们使用的基本原理是,从.NET2开始,如果您使用+运算符,C#编译器将构建相同的IL,就像您使用StringBuilder一样。这对我来说是个新闻。它们正确吗? 最佳答案 不,它们不正确。字符串连接创建一个新的string而StringBuilder使用可变大小的缓冲区来构建字符串,仅在ToString()时创建一个st

c# - 使用 Owinhost.exe 运行 OWIN Web 服务或控制台应用程序有什么区别

我开始开发新的Web应用程序并考虑使用OWIN。我无法从任何文档中解决的一件事是,将C#应用程序创建为控制台应用程序并从其exe文件启动它运行,或者将项目创建为类库/dll,以及使用OwinHost之间有什么区别.exe启动它。运行Owinhost.exe来启动该进程是否比将其作为控制台应用程序运行更有优势? 最佳答案 OneofthecomponentsincludedintheMicrosoftOWINcomponentsisthelightweight,console-basedOwinHost.exe.Thishostfin

c# - .net 3.5 和 .net 4.0 之间的奇怪区别

我有密码byte[]bytes=newbyte[]{0x80,1,192,33,0};if(bytes[0]!=0x80||((bytes[1]&~1)!=0)||bytes[4]!=0){//signaturewrong(.net4.0result)}else{//signtureokay(.net3.5result)}在.net3.5中,表达式的计算结果为false,但在4.0中,它的计算结果为true。我的问题是为什么?以及如何检查我所有的旧(.net3.5)代码以防止这种行为? 最佳答案 所以它并没有在评论中丢失,我相信你在

c# - Request.Url.Query 和 Request.QueryString 有什么区别?

我一直在追踪一个关于UrlRewriting应用程序的错误。该错误表现为查询字符串中某些变音符号的编码问题。基本上,问题是基本上是/search.aspx?search=heřmánek的请求被重写为“search=he%c5%99m%c3%a1nek”的查询字符串正确的值(使用一些不同的工作代码)是将查询字符串重写为“search=he%u0159m%u00e1nek”注意两个字符串之间的区别。但是,如果您将两者都发布,您将看到Url编码重现相同的字符串。直到您使用context.Rewrite函数,编码才会中断。损坏的字符串返回“heÅmánek”(使用Request.QueryS

c# - 使用 Socket 或 UdpClient 进行多播有什么功能上的区别吗?

我正在熟悉多播等。使用了2个主要示例:使用Socket和Bind()UDPClient.JoinMulticastNetwork()一个指定LeaveMulticastGroup和另一个bindingandJoiningwithnoLeaveMulticastGroup()Multicasting的2种方式有什么区别,哪个更好用? 最佳答案 区别在于使用UdpClient之间的抽象级别。使用sockets在较低级别上分类和管理您的多播和multicastoption.如果您使用UdpClient,那么您无需担心套接字和多播选项,因为

C#:TypeDescriptor.GetAttributes() 和 GetType().GetCustomAttributes 之间有什么区别?

使用这两个代码:instance.GetType().GetCustomAttributes(true).Where(item=>itemisValidationAttribute);和TypeDescriptor.GetAttributes(instance).OfType();如果类看起来像:[RequiredIfOtherPropertyIsNotEmpty("State","City",ErrorMessage=ErrorDescription.CreateAccount_CityRequiredWithState)][RequiredIfOtherPropertyIsNotE

c# - C# 中的 Process 和 ProcessStartInfo 有什么区别?

Process和ProcessStartInfo有什么区别?我用过这两种方法来启动外部程序,但必须有一个原因有两种方法可以做到这一点。这里有两个例子。ProcessnotePad=newProcess();notePad.StartInfo.FileName="notepad.exe";notePad.StartInfo.Arguments="ProcessStart.cs";notePad.Start();和ProcessStartInfostartInfo=newProcessStartInfo();startInfo.FileName="notepad.exe";startInf

c# - decimal.Round 和 Math.Round 之间的区别

C#中的Math.Round和decimal.Round函数有什么区别? 最佳答案 没有区别。Math.Round(decimal)源代码:publicstaticDecimalRound(Decimald){returnDecimal.Round(d,0);}ReferenceSource.NETFramework编辑:为了澄清,decimal.cs类的源代码:publicstaticDecimalRound(Decimald){returnRound(d,0);} 关于c#-deci

c# - asp.net MVC 3 中的 ViewData 和 PageData 有什么区别?

好吧,我看到了这2个属性,但我无法理解它们之间的区别?我似乎无法在任何地方找到有关PageData专有性的任何帮助。那么任何机构都可以提供帮助吗?@{Viewdata["something"]=1;PageData["something"]=2;}谢谢 最佳答案 PageData是构建Razor的网页的属性[it]Providesarray-likeaccesstopagedatathatissharedbetweenpages,layoutpages,andpartialpages.http://msdn.microsoft.co

c# - 接口(interface)作为类型约束和接口(interface)作为参数之间的区别?

如果我想创建一个方法,将IList的实例作为参数(或任何其他接口(interface),但我们以IList为例),我可以创建具有类型约束的泛型方法,例如:publicstaticvoidFoo1(Tlist)whereT:IList{}或者,我可以创建一个直接采用IList参数的方法:publicstaticvoidFoo2(IListlist){}就所有意图和目的而言,这些方法的行为似乎完全相同:ListmyList=newList();Foo1(myList);Foo2(myList);那么我的问题是——这两种方法有什么区别?似乎第二种方法更具可读性;还有其他我应该注意的区别(生成